﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Infrastructure;

namespace RegCustomer
{
    public class CreateNewCustomerCommand : Command
    {
        public readonly Guid PersonId;
        public readonly string Name;
        
        public CreateNewCustomerCommand(Guid personId, string name, int originalVersion)
        {
            PersonId = personId;
            Name = name;
            OriginalVersion = originalVersion;
        }
    }

    public class UpdateCustomerCommand : Command
    {
        public readonly Guid PersonId;
        public readonly string NewName;
        public UpdateCustomerCommand(Guid personId, string newName, int originalVersion)
        {
            PersonId = personId;
            NewName = newName;
            OriginalVersion = originalVersion;
        }
    }


    public class UpdateCustomerDateOfBirth : Command
    {
        public readonly Guid PersonId;
        public readonly DateTime DateOfBirth;
        public UpdateCustomerDateOfBirth(Guid personId, DateTime dateOfBirth, int originalVersion)
        {
            PersonId = personId;
            DateOfBirth = dateOfBirth;
            OriginalVersion = originalVersion;
        }
    }

    public class DeactivateCustomerCommand : Command
    {
        public readonly Guid PersonId;
        public readonly string Reason;
        public DeactivateCustomerCommand(Guid personId, string reason, int originalVersion)
        {
            PersonId = personId;
            Reason = reason;
            OriginalVersion = originalVersion;
        }
    }

    public class MakeCustomerPriorityCommand : Command
    {
        public readonly Guid PersonId;
        public MakeCustomerPriorityCommand(Guid personId, int originalVersion)
        {
            PersonId = personId;
            OriginalVersion = originalVersion;
        }
    }
}
